﻿ function alert(e) {
    console.log(e);
}
(function () {
    "use strict";
    var map;
    
    //initialize maps as in the google api example...
    function initialize() {
        var myOptions = {
            center: new google.maps.LatLng(-34.397, 150.644),
            zoom: 8,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("map_canvas"),
            myOptions);

        //obtenemos el nombre del host de la aplicación, siempre tenemos que usar este
        //para que llegen los mensajes
        var locationHost = "ms-appx://" + document.location.host;
        //attach to event from the map
        google.maps.event.addListener(map, 'click', function (e) {
            //creamos un objeto con información para el mensaje
            var message = {
                msg: "click",
                x: e.pixel.x,
                y: e.pixel.y,
                lat: e.latLng.lat(),
                lng: e.latLng.lng()
            };
            //enviamos el mensaje que hemos creado
            window.parent.postMessage(message, locationHost);
        });

        google.maps.event.addListener(map, 'rightclick', function (e) {
            window.parent.postMessage({
                msg: "rightclick",
                x: e.pixel.x,
                y: e.pixel.y,
                lat: e.latLng.lat(),
                lng: e.latLng.lng()
            }
                , locationHost);
        });
    }

    window.addEventListener("message", receiveMessage, false);

    var marker;
    //recibe mensajes del documento
    function receiveMessage(e) {
        if (e.origin === "ms-appx://" + document.location.host) {
            //dentro de e.data recibimos el objeto enviado por
            //default.js desde la llamada postMessage
            if (e.data.msg) {
                switch (e.data.msg) {
                    case "coordinates":
                        var myLatLng = new google.maps.LatLng(e.data.lat, e.data.long);
                        map.setCenter(myLatLng);
                        if (!marker) {
                            marker = new google.maps.Marker({
                                position: myLatLng,
                                map: map,
                                title: "Estas aquí!"
                            });
                            var infowindow = new google.maps.InfoWindow({
                                content: "Estás en la posicion Lat: " + e.data.lat + " Lng: " + e.data.long + "Alt : " + e.data.alt
                            });
                            infowindow.open(map, marker);
                        }
                        else {
                            marker.setPosition(myLatLng);
                        }
                        break;
                    default:
                        //show error
                        break;
                }
            }
        }
    }

    window.addEventListener("DOMContentLoaded", initialize,false);
})();

